package com.changgou.goods.service;

import com.changgou.goods.pojo.Sku;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author:hushengjin
 * @date:2019-07-29 16:15:14
 */
public interface SkuService {

    /**
     * 库存递减
     * 1)将修改库存的Sku的ID集合传入进来和修改的库存数量传入进来,进行递减
     * 2)在Redis中查询购物车列表，然后进行递减  (username)
     */
    void decrCount(String username);

    /**
     * Sku多条件分页查询
     * @param sku
     * @param page
     * @param size
     * @return
     */
    PageInfo<Sku> findPage(Sku sku, int page, int size);

    /**
     * Sku分页查询
     * @param page
     * @param size
     * @return
     */
    PageInfo<Sku> findPage(int page, int size);

    /**
     * Sku多条件搜索方法
     * @param sku
     * @return
     */
    List<Sku> findList(Sku sku);

    /**
     * 删除Sku
     * @param id
     */
    void delete(Long id);

    /**
     * 修改Sku数据
     * @param sku
     */
    void update(Sku sku);

    /**
     * 新增Sku
     * @param sku
     */
    void add(Sku sku);

    /**
     * 根据ID查询Sku
     * @param id
     * @return
     */
     Sku findById(Long id);

    /**
     * 查询所有Sku
     * @return
     */
    List<Sku> findAll();

    /**
     * 根据商品状态查询指定状态的商品集合
     *
     * @param status
     * @return
     */
    List<Sku> findByStatus(String status);
}
